#include <iostream>
using namespace std;
template <typename  Record>
void RadixSort(Record Array[],int n,int d,int r)
{
    Record *TempArray = new Record[n];
    int *TempArray = new Record[n];
    int *count = new int[r];
    int Radix=1;//模进位，用于取Array[i]的第i位
    int i,j,k;
    for(i=0;i<=d;i++){//对第i个排序码分配
        for(int j=0;j<r;j++)
            count[j] = 0;
        for(j=0;j<n;j++)//统计每个桶的记录数
        {
            k = (Array[j]/Radix)%r;//取第i位
            count[k]++;//相应计数器加1
            for(j=1;j<r;j++)
                count[j] = count[j+1]+count[j];
            for(j=n-1;j>=0;j--)
            {
                k = (Array[j]/Radix)%r;
                count[k]--;
                TempArray[count[k]] = Array[j];
            }
            for(j=0;j<n;j++)
                Array[j] = TempArray[j];
            Radix *=r;
        }
    }

}
int main()
{

}